#include <stdio.h>
#include <unistd.h>
#include <sys/select.h>



//1. 监控0号文件描述符(标准输入)的可读事件，阻塞，非阻塞，带有超时时间
int main()
{
    //1. 将0号文件描述符添加到可读事件集合当中去
    //2. 监控起来，阻塞，带有超时时间
    //3. 监控成功之后，从0号文件描述符当中将内容读回来

    //定义一个事件集合fd_set
    fd_set readfds;
    //定义的这个事件集合里面不知道是0还是1,是随机的,需要初始化
    FD_ZERO(&readfds); //这个函数接受的是事件集合的地址

    FD_SET(0, &readfds); //将0号文件描述符添加到事件集合当中去

    //调用select函数进行监控
    select(0 + 1, &readfds, NULL, NULL, NULL); //第1个和第2个NULL表示可写事件和异常时间，第3个NULL表示阻塞接收

    //准备一个buf接收
    char buf[1024] = {0};
    read(0, buf, sizeof(buf) - 1); //从0号文件描述符读到buf当中来
    printf("buf is : %s\n",buf);

    return 0;
}
